package com.neuedu.corejava.jdbc.dao;

import java.util.List;

/**
 * 定义泛型接口，用于定义数据库的基本操作
 * 
 * @author admit
 *
 */
public interface IBaseDao<T> {
	/**
	 * 添加
	 * 
	 * @param param
	 * @return
	 */
	public boolean add(T param);

	/**
	 * 修改
	 * 
	 * @param param
	 * @return
	 */
	public boolean update(T param);

	/**
	 * 删除
	 * 
	 * @param id
	 * @return
	 */
	public boolean deleteById(int id);

	/**
	 * 查询单条数据
	 * 
	 * @param id
	 * @return
	 */
	public T findById(int id);

	/**
	 * 查询所有数据
	 * 
	 * @return
	 */
	public List<T> findAll();

	/**
	 * 查询所有数据
	 * 
	 * @param param
	 * @return
	 */
	public List<T> findByExample(T param);

	/**
	 * 分页查询
	 * 
	 * @param page
	 *            页码，从1开始，1表示第一页
	 * @param size
	 *            大小，最小值是1，表示每页查询1条数据
	 * @return
	 */
	public List<T> findByPager(int page, int size);

	/**
	 * 批量删除
	 * 
	 * @param ids
	 * @return
	 */
	public int deleteByIds(int[] ids);

	/**
	 * 批量新增
	 * 
	 * @param param
	 * @return
	 */
	public int addAll(List<T> param);

	/**
	 * 批量修改
	 * @param param
	 * @return
	 */
	public int editAll(List<T> param);
}
